package com.ruoyi.campus.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ruoyi.campus.domain.MyCommodity;

/**
 * 商品信息Service接口
 *
 * @author zht
 * @date 2021-10-24
 */
public interface IMyCommodityService
{
    /**
     * 查询商品信息
     *
     * @param comId 商品信息主键
     * @return 商品信息
     */
    public MyCommodity selectMyCommodityByComId(String comId);

    /**
     * 查询个人商品信息
     * @param comId 商品信息主键
     * @param userId 用户id
     * @return 商品信息
     */
    public MyCommodity selectMyCommodityByComIdAndUserId(String comId,Long userId);

    /**
     * 查询商品信息列表
     *
     * @param myCommodity 商品信息
     * @return 商品信息集合
     */
    public List<MyCommodity> selectMyCommodityList(MyCommodity myCommodity);

    /**
     * 查询个人商品信息列表
     * @param myCommodity 商品信息
     * @param userId 用户id
     * @return 商品信息集合
     */
    public List<MyCommodity> selectMyCommodityListByUserId(MyCommodity myCommodity,Long userId);

    /**
     * 新增商品信息
     *
     * @param myCommodity 商品信息
     * @return 结果
     */
    public int insertMyCommodity(MyCommodity myCommodity);

    /**
     * 修改商品信息
     *
     * @param myCommodity 商品信息
     * @return 结果
     */
    public int updateMyCommodity(MyCommodity myCommodity);

    /**
     * 批量删除商品信息
     *
     * @param comIds 需要删除的商品信息主键集合
     * @return 结果
     */
    public int deleteMyCommodityByComIds(String[] comIds);

    /**
     * 删除商品信息信息
     *
     * @param comId 商品信息主键
     * @return 结果
     */
    public int deleteMyCommodityByComId(String comId);

    /**
     * 根据商品类别id获取商品类别信息
     * @param typeId 商品类别id
     * @return 结果
     */
    public List<Map<String,Object>> selectCommTypeById(String typeId);

    /**
     * 根据typeName得到商品类别
     * @param typeName 商品类别名称
     * @return 结果
     */
    public List<Map<String,Object>> getCommTypeByTypeNameLike(String typeName);

    /**
     * 查询要审核的商品的相关信息
     * @param myCommodity 商品信息
     * @return 结果
     */
    public List<MyCommodity> selectAuditComList(MyCommodity myCommodity);

    /**
     * 根据 comId 查询要审核的商品的相关信息
     * @param comId 商品ID
     * @return 该商品相关信息
     */
    public MyCommodity selectAuditShopByComId(String comId);

    /**
     * 根据 comId 审核通过商品
     * @param comId 商品ID
     * @return 影响行数
     */
    public int shopPassAuditByComId(String comId);

    /**
     * 根据 comId 确定该商品违规
     * @param comId 商品ID
     * @return 影响行数
     */
    public int shopOutAuditByComId(String comId);

    /**
     * 根据comId获取商品详情信息
     * @param comId 商品ID
     * @return 商品详情信息
     */
    public Map<String,Object> getDetailByComId(String comId);

    /**
     * 查询个人闲置
     * @param userId 用户ID
     * @param comStatus 商品状态
     * @return 结果
     */
    public List<Map<String, Object>> selectMyCommodity(String userId, String comStatus);
}
